Statistical Methods দিয়ে Anomaly Detection (Z-Score, Moving Average)

Machine Learning - টাইম সিরিজ (Time Series) - Anomaly Detection in Time Series
169

অ্যানোমালি ডিটেকশন বা বিচ্যুতি সনাক্তকরণ হলো এমন একটি প্রক্রিয়া যেখানে স্বাভাবিক প্যাটার্ন থেকে অস্বাভাবিক বা বিচ্যুতি ঘটানো প্যাটার্ন সনাক্ত করা হয়। টাইম সিরিজ ডেটাতে অ্যানোমালি সনাক্ত করতে স্ট্যাটিস্টিক্যাল মেথডস যেমন Z-Score এবং Moving Average পদ্ধতি ব্যবহার করা হয়। এই পদ্ধতিগুলির মাধ্যমে আমরা সহজেই ডেটাতে কোনো অস্বাভাবিক বা চরম পরিবর্তন চিহ্নিত করতে পারি।

১. Z-Score দিয়ে অ্যানোমালি ডিটেকশন

Z-Score হলো একটি পরিমাপ যা প্রতিটি ডেটা পয়েন্টের গড় থেকে তার বিচ্যুতি পরিমাপ করে। এটি ডেটার মানের কতটুকু মান বিচ্যুত (deviation) হয়েছে তা বুঝতে সাহায্য করে। Z-Score এক ধরনের স্ট্যান্ডার্ড স্কোর, যা বলে দেয় একটি ডেটা পয়েন্ট গড় থেকে কত স্ট্যান্ডার্ড ডেভিয়েশন (standard deviation) দূরে অবস্থিত।

Z-Score ফর্মুলা:

Z=(Xμ)σZ = \frac{(X - \mu)}{\sigma}

এখানে:

  • XX হলো ডেটা পয়েন্ট,
  • μ\mu হলো ডেটার গড়,
  • σ\sigma হলো ডেটার স্ট্যান্ডার্ড ডেভিয়েশন।

Z-Score দিয়ে অ্যানোমালি ডিটেকশন:

  • যদি Z-Score একটি ডেটা পয়েন্টের জন্য একটি নির্দিষ্ট সীমানার বাইরে থাকে (যেমন, Z>3|Z| > 3), তবে সেটি একটি অ্যানোমালি হিসেবে চিহ্নিত করা হয়। এই মানটি ডেটার গড় থেকে বেশ কিছু দূরে অবস্থান করছে এবং এটি অস্বাভাবিক হতে পারে।

উদাহরণ (Python):

import numpy as np
import pandas as pd

# Sample time series data
data = {'Value': [100, 102, 98, 105, 300, 110, 105, 103, 99, 101]}
df = pd.DataFrame(data)

# Calculate Z-Score
mean = np.mean(df['Value'])
std_dev = np.std(df['Value'])
df['Z-Score'] = (df['Value'] - mean) / std_dev

# Identify anomalies where Z-Score > 3 or < -3
anomalies = df[abs(df['Z-Score']) > 3]
print(anomalies)

Z-Score এর সুবিধা:

  • সহজ এবং দ্রুত: সহজ গণনা এবং দ্রুত অ্যানোমালি সনাক্তকরণের জন্য ব্যবহার করা যায়।
  • লিনিয়ার ডিস্ট্রিবিউশনের জন্য কার্যকরী: যদি ডেটা সাধারণত গড়ের আশেপাশে অবস্থান করে, তাহলে Z-Score কার্যকরী।

Z-Score এর সীমাবদ্ধতা:

  • গণনা ভুল হতে পারে যদি ডেটা সঠিকভাবে বন্টিত না থাকে (যেমন, নন-লিনিয়ার সম্পর্ক বা অতিরিক্ত স্কেল ভ্যারিয়েশন)।

২. Moving Average দিয়ে অ্যানোমালি ডিটেকশন

Moving Average (গড় সরানো) হলো একটি অ্যানোমালি ডিটেকশন পদ্ধতি, যা একটি টাইম সিরিজের চলমান গড় ব্যবহার করে একটি টাইম সিরিজের নতুন ডেটা পয়েন্টের সাথের সুষম গড় পয়েন্ট নির্ধারণ করে। এই পদ্ধতিতে একটি নির্দিষ্ট সময় উইন্ডো (window size) ব্যবহার করা হয়, যা গত কিছু সময়ের গড় (moving average) বের করে।

Moving Average ফর্মুলা:

MAt=1ni=tn+1tXiMA_t = \frac{1}{n} \sum_{i=t-n+1}^{t} X_i

এখানে:

  • MAtMA_t হলো বর্তমান সময়ে গড়।
  • nn হলো উইন্ডোর আকার।
  • XiX_i হলো টাইম সিরিজের গত মান।

Moving Average দিয়ে অ্যানোমালি ডিটেকশন:

  • ডেটা পয়েন্টের সাথে গড়ের পার্থক্য: যদি কোনও ডেটা পয়েন্ট গড় থেকে অনেক বেশি বিচ্যুত থাকে, তবে সেটি একটি অ্যানোমালি হতে পারে।
  • সাধারণভাবে: যখন ডেটার মান গড়ের থেকে প্রায় ২-৩ গুণ বেশি বা কম হয়, তখন সেটি অস্বাভাবিক (অ্যানোমালি) বলে বিবেচিত হয়।

উদাহরণ (Python):

# Sample data (time series)
data = {'Value': [100, 102, 98, 105, 300, 110, 105, 103, 99, 101]}
df = pd.DataFrame(data)

# Calculate Moving Average with a window size of 3
df['Moving_Avg'] = df['Value'].rolling(window=3).mean()

# Identify anomalies where value deviates significantly from the moving average
df['Anomaly'] = np.abs(df['Value'] - df['Moving_Avg']) > 20
print(df)

Moving Average এর সুবিধা:

  • সিজনাল প্যাটার্ন হ্যান্ডেল করতে সক্ষম, কারণ এটি চলমান গড় ব্যবহার করে।
  • সামান্য নোইজ ফিল্টার করতে সাহায্য করে, এবং তা ডেটার আরও স্পষ্ট প্রবণতা (trend) বুঝতে সহায়ক।

Moving Average এর সীমাবদ্ধতা:

  • তাজা পরিবর্তন সনাক্তকরণে সমস্যা: দীর্ঘ সময়ের জন্য চলমান গড় ব্যবহার করলে দ্রুত পরিবর্তন সনাক্ত করা কঠিন হতে পারে।
  • কিছু অ্যানোমালি মিস হতে পারে: যদি অ্যানোমালি দ্রুত ঘটে, তবে চলমান গড় তা সঠিকভাবে ধরতে পারে না।

সারাংশ

Z-Score এবং Moving Average দুটি জনপ্রিয় স্ট্যাটিস্টিক্যাল পদ্ধতি অ্যানোমালি ডিটেকশনে ব্যবহৃত হয়। Z-Score ডেটা পয়েন্টের বিচ্যুতি মাপার জন্য এবং Moving Average সময়ভিত্তিক গড় ব্যবহার করে অ্যানোমালি সনাক্ত করতে সহায়ক। Z-Score সহজ এবং দ্রুত পদ্ধতি হলেও, এটি লিনিয়ার সম্পর্কের জন্য কার্যকর। Moving Average সিজনাল প্যাটার্ন এবং নোইজ ফিল্টারিংয়ের জন্য উপযোগী, তবে এটি দ্রুত পরিবর্তন সনাক্তকরণে কিছুটা সীমাবদ্ধ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...